// pages/video/video.js
import req from '../../utils/req.js'
import hasPermission from '../../utils/hasPermission .js'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 展示当前导航栏内容
    navList: [],
    // 控制导航栏的下划线显示
    navId: 9104,
    // 视频列表
    videoList: [],
    // 控制scroll-view下拉动画开关
    isTriggered: false,
    // 控制页面上video和image的切换
    currentId: null
  },
  // 监视用户点击图片的操作
  triggerComponent(event) {
    // console.log( event)
    // 得到视频的唯一标识
    const currentId = event.currentTarget.id;
    // setData可以接收第二个实参，数据类型是函数
    // 会在setData触发视图更新之后才执行
    this.setData({
      currentId
    }, () => {
      // 创建 video 上下文 VideoContext 对象。
      const videoContext = wx.createVideoContext(currentId);
      videoContext.play();
    })
  },

  // 监视用户上拉scroll-view组件触底操作
  handleScrollToLower() {
    // console.log('handleScrollToLower')
    // 在指定时间后调用函数
    setTimeout(() => {
      this.setData({
        // 视频循环
        videoList: [...this.data.videoList, ...this.data.videoList.slice(0, 8)]
      })
    }, 1000)
  },

  // 用于监视用户下拉scroll-view组件操作
  async handlePullDown() {
    // console.log('handlePullDown')  
    await this.getVideoList();
    this.setData({
      // 触发
      isTriggered: false
    })
  },
  // 测试练习video相关的api
  testApi() {
    // 创建videoContext对象
    // 创建 video 上下文 VideoContext 对象
    const videoContext = wx.createVideoContext("3180DE6BCAB0330607DCDBD64F8D174E");
    // 通过videoContext对象调用pause方法，暂停方法
    videoContext.pause()
  },
  // 监视video组件是否在播放视频
  handlePlay(event) {
    // console.log('handlePlay')
    // 视频开始播放,就保存当前视频的vid
    const vid = event.currentTarget.dataset.vid;
    if (this.oldVid && this.oldVid !== vid) {
      // 创建videoContext对象
      const videoContext = wx.createVideoContext(this.oldVid);
      // 通过videoContext对象调用pause方法，暂停方法
      videoContext.pause();
    }
    this.oldVid = vid;
  },

  // 请求对应的视屏列表数据
  async getVideoList() {
    // console.log('videoList')
    this.setData({
      videoList: []
    })
    const result2 = await req('/video/group', {
      id: this.data.navId
    });
    // console.log(result2)
    // 数据列表
    this.setData({
      videoList: result2.datas.map((item) => {
        return item.data;
      })
    })
    // console.log(2)

  },
  // 监视用户点击导航栏操作，实现下划线的点击切换
  async changeNavId(event) {
    // console.log('cahngeNavId',event)
    this.setData({
      // 监听目标数据中的id
      navId: event.currentTarget.dataset.id
    })
    // this.getVideoList();
    // 显示加载效果
    wx.showLoading({
      title: "加载中..."
    });
    await this.getVideoList();
    // 隐藏加载
    wx.hideLoading();
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: async function() {
    // 判断用户是否已经登录   
    // const cookie = wx.getStorageSync('cookie');
    // if (!cookie) {
    //   wx.showModal({
    //     title: '请先登录',
    //     content: '该功能需要登录之后才能使用',
    //     cancelText: '回到首页',
    //     confirmText: '去登录',
    //     // 成功的回调函数
    //     // 无论点击确认还是取消按钮都会触发成功的回调
    //     // 只有显示框没显示才会显示失败
    //     success: ({
    //       confirm
    //     }) => {
    //       if (confirm) {
    //         wx.navigateTo({
    //           url: '/pages/login/login',
    //         })
    //       } else {
    //         wx.switchTab({
    //           url: '/pages/index/index',
    //         })
    //       }
    //     },
    //   })
    //   return
    // }
    if (!hasPermission()) return

    const result = await req('/video/group/list');
    this.setData({
      navList: result.data.slice(0, 100),
      navId: result.data[0].id
    })
    // const result2= await req('/video/group',{id:60100})
    this.getVideoList();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function({
    from,
    target
  }) {
    console.log('onShareAppMessage', from, target)
    if (from === "menu") {
      // 能进入此处,说明当前是通过右上角转发按钮进入的
      return {
        title: "硅谷云音乐",
        path: "/pages/index/index",
        imageUrl: "/static/images/logo.png"
      }
    } else if (from === "button") {
      // 能进入此处,说明当前是通过页面的button组件进入的
      // 注意:自定义属性名称不能有大写,否则会自动转为小写
      const {
        title,
        imageurl
      } = target.dataset;
      // console.log('imageUrl', imageUrl)
      return {
        title,
        path: "/pages/video/video",
        imageUrl: imageurl
      }
    }
  }
})